package com.wl.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.wl.dao.Approve_03Mapper;
import com.wl.dao.LoginfoMapper;
import com.wl.entity.Approve_03;
import com.wl.entity.Loginfo;
import com.wl.service.Approve_03Service;
import com.wl.util.PageData;

@Service
public class Approve_03ServiceImpl implements Approve_03Service {

	// 注入03环节DAO
	@Autowired
	private Approve_03Mapper app03s;

	// 注入loginfomapper
	@Autowired
	private LoginfoMapper logmapper;

	/**
	 * 02环节提交03环节给03表里增加数据
	 * 
	 * @param record
	 * @return
	 */
	@Override
	public boolean insert(Approve_03 record) {
		// 调用DAO中的增加方法
		return app03s.insert(record) > 0;
	}

	/**
	 * 根据流程编号修改信息 用于03环节提交更新03表里的数据 未处理变已处理
	 * 
	 * @param flowid
	 * @return
	 */
	@Override
	@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
	public boolean updateByflowid(Approve_03 record, Loginfo log) {
		// 调用DAO中的修改方法
		app03s.updateByflowid(record);

		// 调用loginfoMapper中的方法
		logmapper.insert(log);
		return true;
	}

	
	/**
	 * 按照编号查找该处理人当前未处理流程  分页
	 */
	@Override
	public PageData<Approve_03> selectNotHandByName(String managerno, int page, int limit) {
		// 设置起始位置
		int start = 0;
		if (page >= 1) {
			start = (page - 1) * limit;
		}

		// 查询总页数
		int totalCount = app03s.selectCountNotHand(managerno);

		// 分页
		List<Approve_03> data = app03s.selectNotHandByName(managerno, start, limit);

		// 把数据放到封装好的PageData类中
		PageData<Approve_03> pageData = new PageData<Approve_03>(data, totalCount, limit, page);

		// 设置这两个参数和Layui保持一致
		pageData.setCode(0);
		pageData.setMsg("");

		// 返回
		return pageData;
	}
	
	
	/**
     * 按照编号查找该处理人已处理流程  分页
     * @param dmno
     * @return
     */
	@Override
	public PageData<Approve_03> selectApprovedByName(String managerno, int page, int limit) {
		// 设置起始位置
		int start = 0;
		if (page >= 1) {
			start = (page - 1) * limit;
		}

		// 查询总页数
		int totalCount = app03s.selectCountApproved(managerno);

		// 分页
		List<Approve_03> data = app03s.selectApprovedByName(managerno, start, limit);

		// 把数据放到封装好的PageData类中
		PageData<Approve_03> pageData = new PageData<Approve_03>(data, totalCount, limit, page);

		// 设置这两个参数和Layui保持一致
		pageData.setCode(0);
		pageData.setMsg("");

		// 返回
		return pageData;
	}

}
